package top.i89ck.common.tree;

import java.util.Set;

/**
 * 树模型接口
 *
 * @author Seiya
 */
public interface TreeModel<M> {

    /**
     * 当前节点主键
     *
     * @return
     */
    Long getId();

    /**
     * 上级节点主键
     *
     * @return
     */
    Long getParentId();

    /**
     * 添加节点
     *
     * @param model
     */
    void addChild(M model);

    /**
     * 获取所有下级节点
     *
     * @return
     */
    Set<M> getChildren();

    /**
     * 获取节点名称
     *
     * @return
     */
    String getName();

}
